iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
Python

利用Python完成自動化測試專案系列 第 3

D3 物件導向基本介紹

  • 分享至 

  • xImage
  •  

上次把Python的基礎語法講完,這次要來簡單介紹物件導向的相關概念

物件導向是什麼

簡單來講就是把程式包裝成物件,藉此提高重用性、可擴充性、維護性

物件

以車子為例,可以把這個物件當成是一個"Class",Class 類似物件的藍圖,而物件就是 Class 的實例。

class Car:
    def __init__(self, make, model, year):
        self.make = make    # 生產廠家
        self.model = model  # 車型
        self.year = year    # 生產年份
    
    def display_info(self):
        return f"{self.year} {self.make} {self.model}"

在上面的 code,我們定義了 Car 的 Class, 首先先初始化這個物件的資料,下面的 display_info是這個Class的方法(method),負責與物件進行互動,以上面為例是回傳此物件的資料。

my_car = Car("Toyota", "Corolla", 2020)

以此例子,my_car就是Car的物件

print(my_car.display_info())

呼叫物件方法以實現與物件互動。

封裝

簡單來講就是隱藏物件的實作細節,只保留方法,以機器為例,只需要知道使用方法,不用知道其製作方法。這樣做可以提高程式可讀性,且讓程式更好維護。

以Python為例,在屬性前面加入雙底線可讓外部無法存取

class Car:
    def __init__(self, make, model, year):
        self.__make = make    # 生產廠家
        self.__model = model  # 車型
        self.__year = year    # 生產年份

繼承

假設現在要創建電動,它的屬性跟汽車會重疊,但是會新增一個電池量的屬性,這個時候就可以用繼承,將原本的"Car"繼承到"ElectricCar"上。

class ElectricCar(Car):
    def __init__(self, make, model, year, battery_size):
        super().__init__(make, model, year) 
        self.battery_size = battery_size

多形

簡單來講就是有相同方法,但實現方式

def show_car_info(car):
    print(car.display_info())

以 show_car_info 函式為例,只要是car類別都可以調用此函數
所以繼承 Car 類別的 ElectricCar 也可以用

my_car = Car("Toyota", "Corolla", 2020)
my_electric_car = ElectricCar("Tesla", "Model 3", 2021, 75)

show_car_info(my_car)            
show_car_info(my_electric_car)   

明天預計會介紹selenium


上一篇
D2 Python語法介紹
下一篇
D4 selenium 介紹與實作
系列文
利用Python完成自動化測試專案12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言